abstract keyword